package com.ai.zhly.util.sms.utils;

import com.ai.zhly.util.sms.msg.Msg_Cmpp_Active_Test;
import com.ai.zhly.util.sms.msg.Msg_Cmpp_Connect;
import com.ai.zhly.util.sms.msg.Msg_Cmpp_Submit;
import com.ai.zhly.util.sms.msg.Msg_Command;

/**
 * 
 * @company：AsiaInfo BDX-DS-PSO NFJD/XZ/GD Dept.-GZ
 * @author：xw.jiang on 2015年11月13日
 * @email:jiangxw@asiainfo.com
 * @description:消息构造器
 */
public class MakeMessage {

	/**
	 * 构建submit消息
	 * 
	 * @return
	 */
	public static Msg_Cmpp_Submit makemakeMsg_Submit() {
		Msg_Cmpp_Submit ms = new Msg_Cmpp_Submit();
		String msgContent = Constant.MSG_CONTENT;
		byte[] mb = msgContent.getBytes();
		int totalLen = 12 + 147 + mb.length;
		ms.setTotal_Length(totalLen);
		ms.setCommand_Id(Msg_Command.CMPP_SUBMIT);
		ms.setSequence_Id(Utils.nextSequenceId());
		ms.setMsg_Id(Utils.nextSequenceId());
		ms.setPk_total((byte) 1);
		ms.setPk_number((byte) 1);
		ms.setRegistered_Delivery((byte) 1);
		ms.setMsg_level((byte) 3);
		ms.setService_Id(Constant.SERVICE_ID);
		ms.setFee_UserType((byte) 3);
		ms.setFee_terminal_Id(Constant.FEE_TERMINAL_ID);
		ms.setFeeType(Constant.FEE_TYPE);
		ms.settP_pId((byte) 0);
		ms.settP_udhi((byte) 0);
		ms.setMsg_Fmt((byte) 15);
		ms.setMsg_src(Constant.MSG_SRC);
		ms.setFeeCode(Constant.FEE_CODE);
		ms.setValId_Time("");
		String sureTime = "";
		ms.setAt_Time(sureTime);
		ms.setSrc_Id(Constant.SRC_ID);
		ms.setDestUsr_tl((byte) 4);
		ms.setDest_terminal_Id(Constant.MOBILE);
		ms.setMsg_Length((byte) mb.length);
		ms.setMsg_Content(msgContent);
		ms.setReserve("0");
		return ms;
	}

	public static Msg_Cmpp_Active_Test makeMsg_Cmpp_Active_Test() {
		Msg_Cmpp_Active_Test ms = new Msg_Cmpp_Active_Test();
		ms.setTotal_Length(12);
		ms.setCommand_Id(Msg_Command.CMPP_ACTIVE_TEST);
		ms.setSequence_Id(Utils.nextSequenceId());
		return ms;
	}

	/**
	 * @return 构造 连接消息体[Msg_Cmpp_Connect]
	 */
	public static Msg_Cmpp_Connect getCmpp_Connect(String id, String pwd) {
		Msg_Cmpp_Connect cmpp_connect = new Msg_Cmpp_Connect();
		cmpp_connect.setTotal_Length(4 + 4 + 4 + 6 + 16 + 1 + 4);
		cmpp_connect.setCommand_Id(Msg_Command.CMPP_CONNECT);
		cmpp_connect.setSequence_Id(0);
		cmpp_connect.setSource_Addr(id);
		cmpp_connect.setAuthenticatorSource(Utils.getMd5(id, pwd,
				"" + Integer.parseInt(Utils.getMMDDHHMMSS())));
		cmpp_connect.setVersion((byte) 2);
		cmpp_connect.setTimestamp(Integer.parseInt(Utils.getMMDDHHMMSS()));
		return cmpp_connect;
	}
}
